package com.docted.design.pattern.singleton.register;

import java.util.HashMap;
import java.util.Map;

/**
 * @author DoCted
 * @since v1.0 2018/3/7
 */
public class RegisterMap {

    /**
     * 注册登记式
     *  每使用一次，都向固定的容器中去注册并将其缓存
     *  下次再获取的时候直接从容器中获取，如果没有在创建
     */


    private RegisterMap() {}

    /**
     * 注册器模式
     * 如果使用HashMap也是非线程安全的
     */

    private static Map<String, Object> register = new HashMap<>();

    public static RegisterMap getInstance(String name) {
        if (null == name) {
            name = RegisterMap.class.getName();
        }
        if (null == register.get(name)) {
            register.put(name, new RegisterMap());
        }
        return (RegisterMap) register.get(name);
    }
}
